#include <bits/stdc++.h>
#define fr first
#define sc second
#define pb push_back
#define ll long long
#define Mid ((L+R)/2);
#define rev(x) reverse(x.begin(),x.end())
#define sortt(x) sort(x.begin(),x.end())
#define deb(x) cout<<#x<<"="<<x<<endl
#define pans(x) x ? cout<<"YES"<<"\n" :cout<<"NO"<<"\n";
#define endl "\n"
#define AB ios::sync_with_stdio(0); cin.tie(0); cout.tie(0);
#define log(x) (31^__builtin_clz(x)) // Easily calculate log2 on GNU G++ compilers
#define logll(x) (63^__builtin_clzll(x)) // Easily calculate log2 on GNU G++ compilers
#define stldeb(x) {cout<< #x << " = " ;for(auto it : x)cout<< it << " ";cout<< endl;}
#define stlpdeb(x){cout<< #x << " : " <<endl;for(auto p : x) cout<<p.fr<< " " <<p.sc<<endl;}
using namespace std;
int const N=2e5+20;
int Min=-1e9;
int Max=1e9;
ll LLMin=-1e18;
ll LLMax=1e18;
int mod=1e9;
int main()
{
AB
int n;
cin>>n;
ll b[n+10];
vector<ll>ans1,ans2;
for(int i=1;i<=(n/2);i++)
{
cin>>b[i];
if(i==1)
{
ans1.pb(0);
ans2.pb(b[i]);
continue;
}
ll last1=ans1.back();
ll last2=ans2.back();
ll x=last1;
ll y=b[i]-x;
if(y>last2)
{
x=b[i]-last2;
y=b[i]-x;
}
ans1.pb(x);
ans2.pb(y);
}
rev(ans2);
for(auto i:ans1)
cout<<i<<' ';
for(auto i:ans2)
cout<<i<<' ';
}
27. Remove Element | 39. Combination Sum |
378. Kth Smallest Element in a Sorted Matrix | 162. Find Peak Element |
1529A - Eshag Loves Big Arrays | 19. Remove Nth Node From End of List |
925. Long Pressed Name | 1051. Height Checker |
695. Max Area of Island | 402. Remove K Digits |
97. Interleaving String | 543. Diameter of Binary Tree |
124. Binary Tree Maximum Path Sum | 1465. Maximum Area of a Piece of Cake After Horizontal and Vertical Cuts |
501A - Contest | 160A- Twins |
752. Open the Lock | 1535A - Fair Playoff |
1538F - Interesting Function | 1920. Build Array from Permutation |
494. Target Sum | 797. All Paths From Source to Target |
1547B - Alphabetical Strings | 1550A - Find The Array |
118B - Present from Lena | 27A - Next Test |
785. Is Graph Bipartite | 90. Subsets II |
1560A - Dislike of Threes | 36. Valid Sudoku |